var MyCom = window.MyCom || {};
MyCom = {
	//userid存储本地的key
	key_userid : 'userid',
	key_username : 'user_name',
	key_userphone : 'user_phone',
	key_userareaid : 'user_areaid',
	key_studentNumber : 'user_studentNumber',
	//用户的身份：普通成员，管理员
	key_userlimit : 'userlimit',
	//用户的模块权限
	key_module : 'module_limit',
	/**
	 * 错误提示
	 * @param {Number} type - 错误提示类型
	 */
	errorTip : function(type) {
		if (Object.prototype.toString.call(type) !== '[object Number]') {
			api.alert({
				title : '错误提示',
				msg : 'app数据错误',
			}, function(ret, err) {
				api.closeWin({
				});
			});
		} else {
			switch(type) {
				case 1:
					api.alert({
						title : '错误提示',
						msg : '程序异常',
					}, function(ret, err) {
						if (api.winName == 'root') {
							MyCom.closeThisWgt();
						} else {
							api.closeWin({
							});
						}
					});
					break;
				case 2:
					api.alert({
						title : '错误提示',
						msg : '服务器数据异常',
					}, function(ret, err) {
						if (api.winName == 'root') {
							MyCom.closeThisWgt();
						} else {
							api.closeWin({
							});
						}
					});
					break;
				case 3:
					api.alert({
						title : '错误提示',
						msg : '连接服务器失败！',
					}, function(ret, err) {
						if (api.winName == 'root') {
							MyCom.closeThisWgt();
						} else {
							api.closeWin({
							});
						}
					});
					break;
				default:
					api.alert({
						title : '错误提示',
						msg : 'app数据错误',
					}, function(ret, err) {
						if (api.winName == 'root') {
							MyCom.closeThisWgt();
						} else {
							api.closeWin({
							});
						}
					});
					break;
			}
		}
	},

	/**
	 * 关闭当前模块的方法
	 */
	closeThisWgt : function() {
		if ('android' === api.systemType) {
			api.closeWidget({
				id : api.appId,
				silent : true
			});
		} else if ('ios' === api.systemType) {
			api.sendEvent({
				name : 'CloseRootWin'
			});
			setTimeout(function() {
				api.closeWin({
				});
			}, 200);
		}
	},

	/**
	 * 解决view的伪类在移动端不生效的方法。（如active等）
	 * @param {String} tagname - 标签名
	 */
	solveViewNotActive : function(tagname) {
		var a = document.getElementsByTagName(tagname);
		for (var i = 0; i < a.length; i++) {
			a[i].addEventListener('touchstart', function() {
			}, false);
		}
	},

	/**
	 * 数据显示容错处理
	 * @param {String} data - 需要处理的数据
	 * @return 返回处理后的数据
	 */
	dataFaultTolerant : function(data) {
		if (data == null || data == 'null') {
			return '--';
		} else {
			return data;
		}
	},

	/**
	 * 返回上一页
	 */
	backPrePg : function() {
		document.getElementsByClassName('back-pre-pg')[0].onclick = function() {
			api.closeWin({
			});
		}
	},

	/**
	 * 判断数据类型
	 */
	objectType : {
		isObj : function(o) {
			return Object.prototype.toString.call(o) == "[object Object]";
		},
		isArray : function(o) {
			return Object.prototype.toString.call(o) == "[object Array]";
		},
		isNULL : function(o) {
			return Object.prototype.toString.call(o) == "[object Null]";
		},
		isDocument : function() {
			return Object.prototype.toString.call(o) == "[object Document]" || "[object HTMLDocument]";
		},
		isNumber : function(o) {
			return Object.prototype.toString.call(o) == "[object Number]";
		},
		isString : function(o) {
			return Object.prototype.toString.call(o) == "[object String]";
		},
		isFunction : function(o) {
			return Object.prototype.toString.call(o) == "[object Function]";
		},
		isUndefined : function(o) {
			return Object.prototype.toString.call(o) == "[object Undefined]";
		}
	},
	/**
	 * 去除String的前后空格
	 * @param {String} str - 需要去除空格的数据
	 */
	trim : function(str) {
		if (!MyCom.objectType.isString(str)) {
			throw new Error('请输入字符串数据!');
		}
		return str.replace(/(^\s*)|(\s*$)/g, '');
	},
	fomatName : function(str) {
		if (!MyCom.objectType.isString(str)) {
			throw new Error('请输入字符串数据!');
		}
		var name;
		if (str == null) {
			name = '--';
		} else {
			name = str.slice(0, 1) + '**';
		}
		name = str.slice(0, 1) + '**';

		return name;
	},
	/**
	 * 弹出菜单
	 * @param{Array} datas - 菜单数据
	 * @param{String} type - 类型：cneter ,bottom
	 */
	pop : function(datas, type, url) {
		type = type || 'center';
		api.openFrame({
			name : 'popView',
			url : url,
			rect : {
				x : 0,
				y : 0,
				w : 'auto',
				h : 'auto'
			},
			bounces : false,
			bgColor : 'rgba(0,0,0,0.5)',
			pageParam : {
				'datas' : datas,
				'type' : type
			}
		});
	},
	/**
	 * 拨打电话
	 */
	callPhone : function(phoneNum) {
		if (phoneNum == null) {
			api.toast({
				msg : '号码有误'
			});
			return;
		} else {
			api.call({
				number : phoneNum
			});
		}
	}
};
